﻿var K_PERFIL_GEOLOGO = "GEOLOGO";
var K_PERFIL_GEOMECANICO = "GEOMECANICO";
var K_MSG_PERMISO = "Ud No tiene acceso a esta opción.";
var K_TIME_OUT_SESSION = "La sesion ha Expirado. Inicie sesion nuevamente";
var K_ERROR_CUSTOM = 999; 

var K_EstadoGuiaSalida=
    {
        Registrado : 1,
        Anulado: 3,
        Enviado : 4,
        EnLaboratorio: 5,
        Muestreado : 6
     };


     $(document).ready(function () {
         obtienePerfUsuLogin();  //carga perfil logeado
         obtieneUsuarioLogin();  //carga usuario logeado
         // validateMenu();
         var meses = [
                        { id: 0, nombre: 'Todos' },
                        { id: 1, nombre: 'Enero' }, { id: 2, nombre: 'Febrero' }, { id: 3, nombre: 'Marzo' },
                        { id: 4, nombre: 'Abril' }, { id: 5, nombre: 'Mayo' }, { id: 6, nombre: 'Junio' },
                        { id: 7, nombre: 'Julio' }, { id: 8, nombre: 'Agosto' }, { id: 9, nombre: 'Setiembre' },
                        { id: 101, nombre: 'Octubre' }, { id: 11, nombre: 'Noviembre' }, { id: 12, nombre: 'Diciembre' }
                        ];

         $("#txtAnioFiltro").kendoNumericTextBox({ min: 1070, max: 2099, value: 2014, format: "####", spinners: false });
         $("#ddlMesFiltro").kendoDropDownList({ dataSource: meses, dataTextField: "nombre", dataValueField: "id", index: 0 });
         $("#btnSearch").kendoButton({ icon: "search" });
         $("#A2").kendoButton({ icon: "close" });
         $("#btnAddMuestra").kendoButton({ icon: "plus" });
         $("#txtAnio").kendoNumericTextBox({ min: 1070, max: 2099, value: 2014, format: "####", spinners: false });
         $("#txtMes").kendoNumericTextBox({ min: 1, max: 12, value: 1, format: "##", spinners: false });
         $("#txtMuestra").on("keypress", function (e) { var key = (e ? e.keyCode || e.which : window.event.keyCode); if (key == 13) add_muestra(); });
         $("#txtMuestraEdit").on("keypress", function (e) { var key = (e ? e.keyCode || e.which : window.event.keyCode); if (key == 13) add_muestra_edit(); });
         $("#btnSearch").on("click", function () {
             reloadGrid();
         });

         loadData();

     
         

     });


     $(function () {
         $("#actions").kendoMobileActionSheet({ type: "tablet" });
         $("#grid").on("click", "tr", function () { limpiar(); $("#actions").data("kendoMobileActionSheet").open(this); });
     });

//LIMPIA LOS CONTROLES MODAL NUEVO
function limpiar() {
    $("#txtMuestra").val("");
    $("#txtObservacion").val("");
    $("#txtEstado").val("Nuevo");
    $("#txtCodigo").val("");
    $("#txtAnio").width(70).kendoNumericTextBox({ min: 1070, max: 2099, value: 2014, format: "####",spinners:false });
    $("#txtMes").width(70).kendoNumericTextBox({ min: 1, max: 12, value: 1, format: "##", spinners: false });
}
//LIMPIA LOS CONTROLES MODAL EDITAR
function limpiarEdit() {
    $("#txtMuestraEdit").val("");
    $("#txtObservacionEdit").val("");
    $("#txtFechaEdit").val("");
    $("#txtEstadoEdit").val("");
    $("#txtCodigoEdit").val("");
    $("#txtResponsableEdit").html("");
    $("#txtAnioEdit").width(70).kendoNumericTextBox({ min: 1070, max: 2099, value: '', format: "####", spinners: false });
    $("#txtMesEdit").width(70).kendoNumericTextBox({ min: 1, max: 12, value: '', format: "##", spinners: false });
}
//PERMITE ABRIR LA VENTANA PARA LA EDICION DE LOS DATOS
function edit(e) {
    limpiarEdit();
    var codigoSel = getIdGrilla(e);
    if ($.trim(codigoSel) != "") {
        $.ajax({
            data: { idGuiaSalida: codigoSel },
            url: 'EnvioMuestra/Edit',
            type: 'GET',
            beforeSend: function () { },
            success: function (response) {
                var dato = response;
                if (dato.result == 1) {
                    var guia = dato.data.Data;
                    $("#txtCodigoEdit").val(guia.CodigoGuiaSalida);
                    $("#txtAnioEdit").width(80).kendoNumericTextBox({ min: 1070, max: 2099, format: "####", value: guia.Anio,spinners:false });
                    $("#txtMesEdit").width(80).kendoNumericTextBox({ min: 1, max: 12, format: "##", value: guia.Mes, spinners: false });
                    $("#txtEstadoEdit").val(guia.Estado == K_EstadoGuiaSalida.Registrado ? "Registrado" : guia.Estado == K_EstadoGuiaSalida.Enviado ? "Enviado" : guia.Estado == K_EstadoGuiaSalida.Anulado ? "Anulado" : guia.Estado == K_EstadoGuiaSalida.EnLaboratorio ? "En Laboratorio" : guia.Estado == K_EstadoGuiaSalida.Muestreado ? "Muestreado" : "No Encontrado");
                    var geo = guia.Geologo;
                    if (geo != null) {
                        $("#txtResponsableEdit").html(geo.Nombres + " " + geo.ApellidoPaterno + " " + geo.ApellidoMaterno);
                    } else {
                        $("#txtResponsableEdit").html("-");
                    }
                    $("#txtFechaEdit").kendoDatePicker({
                        min: new Date(1998, 0, 1), max: new Date(2025, 11, 31), culture: "en-AU", format: "dd/MM/yyyy", parseFormats: ["dd/MM/yyyy"],
                        value: guia.Fecha, enable: false
                    });
                    $("#txtObservacionEdit").val(guia.Observacion);

                    $("#hidEstadoEdit").val(guia.Estado);
                    deshabilitarCtrl(guia.Estado)

                    $("#mvEditEnvioMuestra").kendoMobileModalView("open");
                } else {
                    alert("ocurrió un error" + dato.message);
                }
            }
        });
        loadDataMuestraEdit();
        loadDataMuestraEdit();
    } else {
        alert("No se puede Obtener el codigo de muestra seleccionado.");
    }
}
function fin(e) {
    
        document.location.href = 'Inicio';
}
//PERMITE ANULAR UN REGISTRO 
 function anu(e) {
     var idEstado = getIdGrillaUltima(e);
     if (idEstado ==  K_EstadoGuiaSalida.Registrado) {
         var codigoSel = getIdGrilla(e);
         if (confirm("Esta seguro de anular la guía de muestras?")) {
             if ($.trim(codigoSel) != "") {
                 $.ajax({
                     data: { idGuiaMuestra: codigoSel },
                     url: 'EnvioMuestra/Anular',
                     type: 'POST',
                     beforeSend: function () { },
                     success: function (response) {
                         var dato = response;
                         if (dato.result == 1) {
                            reloadGrid();
                             alert("Muestra anulada correctamente.");
                         } else {
                             if (dato.code == K_ERROR_CUSTOM) {
                                 alert(dato.message);
                             } else {
                                 alert("Error al intentar anular: \n" + dato.message);
                             }
                         }
                     }
                 });
             } else {
                 alert("No se pudo obtener el codigo de guia de salida.");
             }
         }
     } else {
         alert("Sólo se puede anular registros con estado Registrado.");
     }
}
//PERMITE ENVIAR LAS MUESTRAS
function env(e) {
    var idEstado = getIdGrillaUltima(e);
    if (idEstado == K_EstadoGuiaSalida.Registrado) {
        var codigoSel = getIdGrilla(e);
        if (confirm("Esta seguro de enviar las muestras?")) {
            if ($.trim(codigoSel) != "") {
                $.ajax({
                    data: { idGuiaMuestra: codigoSel },
                    url: 'EnvioMuestra/Enviar',
                    type: 'POST',
                    beforeSend: function () { },
                    success: function (response) {
                        var dato = response;
                        if (dato.result == 1) {
                            reloadGrid();
                            alert("Muestra Enviada correctamente.");
                        } else {
                            if (dato.code == K_ERROR_CUSTOM) {
                                alert(dato.message);
                            } else {
                                alert("Error al intentar enviar muestras: \n" + dato.message);
                            }
                        }
                    }
                });
            } else {
                alert("No se pudo obtener el codigo de guia de salida.");
            }
        }
    } else {
        alert("Sólo se puede enviar registros con estado Registrado.");
    }
}
// AGREGA UNA MUESTRA A LA GRILLA CUANDO ES NUEVO una GUIA DE SALIDA
function add_muestra() {
    var CodigoMuestra = $("#txtMuestra").val();
    if ($.trim(CodigoMuestra) != "") {
        $.ajax({
            data: {
                CodigoMuestra: CodigoMuestra
            },
            url: 'EnvioMuestra/addMuestra',
            type: 'POST',
            beforeSend: function () { },
            success: function (response) {
                var dato = response;
                if (dato.result != 1) {
                    alert(dato.message);
                } else {
                    $("#txtMuestra").val("");
                    $("#txtMuestra").focus();
                }
            }
        });
        loadDataMuestra();
    } else {
        alert("Ingrese valor de muestra.");
    }

    
}
// AGREGA UNA MUESTRA A LA GRILLA CUANDO   EDICION DE GUIA DE SALIDA
function add_muestra_edit() {
    var CodigoMuestra = $("#txtMuestraEdit").val();
    if ($.trim(CodigoMuestra) != "") {

        $.ajax({
            data: {
                CodigoMuestra: CodigoMuestra
            },
            url: 'EnvioMuestra/addMuestra',
            type: 'POST',
            beforeSend: function () { },
            success: function (response) {
                var dato = response;
                if (dato.result != 1) {
                    alert(dato.message);
                } else {
                    $("#txtMuestraEdit").val("");
                    $("#txtMuestraEdit").focus();
                }
            }
        });

        loadDataMuestraEdit();
    } else {
        alert("Ingrese valor de muestra.");
    }
}

///LIMPIA Y ELIMINA LA SESION PARA LAS MUESTRAS AGREGADAS
function limpiarSesion() {
    $.ajax({
        url: 'EnvioMuestra/CerrarPopUp',
        type: 'GET',
        beforeSend: function () { },
        success: function (response) {
        }
    });
}
// CARGA LA GRILLA DE MUESTRAS AGREGADAS AL INSERTAR GUIA DE SALIDA
function loadDataMuestra() {
    //addon dbs 
    loadDataMuestraHtml("#gridMuestra");
    loadDataMuestraHtml("#gridMuestra");
 }
 // CARGA LA GRILLA DE MUESTRAS AL EDITAR UNA GUIA DE SALIDA
 function loadDataMuestraEdit() {
     loadDataMuestraHtml("#gridMuestraEdit");
     loadDataMuestraHtml("#gridMuestraEdit");
 }

// CARGA LA GRILLA CON LOS FILTROS SELECCIONADOS 
function loadData() {
    $("#grid").kendoGrid({
        dataSource: { type: "json",
            transport: {
                read: { url: "EnvioMuestra/Listar",
                        dataType: "json",
                        data: { 
                                anio:$("#txtAnioFiltro").val(),      
                                mes:$("#ddlMesFiltro").val()     
                              }
                }
            },
            schema: { type: "json",
                model: {
                    id: "CodigoGuiaSalida",
                    fields: {
                        "CodigoGuiaSalida": { type: "int" },
                        "Fecha": { type: "date" },
                        "DescEstado": { type: "string" },
                        "Estado": { type: "int" }
                    }
                }
            },
            pageSize: K_PAGESIZE,
            serverPaging: false,
            serverFiltering: false,
            serverSorting: false
        },
        pageable: true,
        selectable: true,
        resizable: true,
        filterable: true,
        sortable: true,
        columnMenu: true,
        toolbar: [{text: "Nuevo", className: "k-grid-custom",  imageClass: "k-icon k-add"}],
        columns: [
                    { field: "CodigoGuiaSalida", title: "Codigo"},
                    { field: "Fecha", title: "Fecha", template: "#= kendo.toString(kendo.parseDate(Fecha, 'yyyy-MM-dd'), 'dd/MM/yyyy') #" },
                    { field: "DescMes", title: "Mes" },
                    { field: "DescEstado", title: "Estado" },
                    { field: "Estado", title: "IdEstado", hidden:true }
                 ]
    });
    initOpcionNuevoFin();

}

function getIdGrilla(e) {
    //usar esta funcion si la primera columna es el id del agrilla
    var grid = $("#grid").data("kendoGrid");
    var row = grid.select();
    var uid = row.data("uid");
    var tr_first = $('[data-uid="' + uid + '"] td:first').text();
    return tr_first;
}
function getIdGrillaUltima(e) {
    //usar esta funcion si la primera columna es el id del agrilla
    var grid = $("#grid").data("kendoGrid");
    var row = grid.select();
    var uid = row.data("uid");
    var tr_first = $('[data-uid="' + uid + '"] td:last').text();
    return tr_first;
}
function GetQueryStringParams(sParam) {
    var sPageURL = window.location.search.substring(1);
    var sURLVariables = sPageURL.split('&');
    for (var i = 0; i < sURLVariables.length; i++) {
        var sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] == sParam) {
            return sParameterName[1];
        }
    }
}

function closeNuevoEM(){
    limpiarSesion();
    $("#mvNuevoEnvioMuestra").kendoMobileModalView("close");
}
function closeEditEM() {
    limpiarSesion();
    $("#mvEditEnvioMuestra").kendoMobileModalView("close");
}

// INSERTAR NUEVA GUIA DE SALIDA
function grabarNuevoModalView() {
    var anio = $("#txtAnio").data("kendoNumericTextBox");
    var mes = $("#txtMes").data("kendoNumericTextBox");
    var envioMuestra = {
        Anio: anio.value(),
        Mes: mes.value(),
        Observacion: $("#txtObservacion").val(),
        CodigoGuiaSalida: 0
    };
    $.ajax({
        data: envioMuestra,
        url: 'EnvioMuestra/Create',
        type: 'POST',
        beforeSend: function () { },
        success: function (response) {
            var dato = response;
            if (dato.result == 1) {
                alert("registrado correctamente.");
                reloadGrid();
                closeNuevoEM();
            } else {
                if (dato.code == K_ERROR_CUSTOM) {
                    alert(dato.message);
                } else {
                    alert("Error al intentar registrar: \n" + dato.message);
                }
            }
        }
    });
}  

// ACTUALIZAR GUIA DE SALIDA
       function grabarEditModalView() {
          if ($("#hidEstadoEdit").val() == K_EstadoGuiaSalida.Registrado) {
               var anio = $("#txtAnioEdit").data("kendoNumericTextBox");
               var mes = $("#txtMesEdit").data("kendoNumericTextBox");

               var envioMuestra = {
                   Anio: anio.value(),
                   Mes: mes.value(),
                   Observacion: $("#txtObservacionEdit").val(),
                   CodigoGuiaSalida: $("#txtCodigoEdit").val()
               };
               $.ajax({
                   data: envioMuestra,
                   url: 'EnvioMuestra/Modificar',
                   type: 'POST',
                   beforeSend: function () { },
                   success: function (response) {
                       var dato = response;
                       if (dato.result == 1) {
                           alert("Actualizado correctamente");
                           reloadGrid();
                           closeEditEM();
                       } else {
                           if (dato.code == K_ERROR_CUSTOM) {
                               alert(dato.message);
                           } else {
                               alert("Error al intentar registrar: \n" + dato.message);
                           }
                       }
                   }
               });
            } else {
                alert("Sólo se puede actualizar una guía con estado Registrado.");
            }
           }


           function deshabilitarCtrl(opc) {

               if (opc != K_EstadoGuiaSalida.Registrado) {

                   $("#txtObservacionEdit").attr("disabled", "disabled");
                   $("#btnAddMuestraEdit").attr("disabled", "disabled");
                   $("#txtMuestraEdit").attr("disabled", "disabled");
                   

               } else {

                   $("#txtObservacionEdit").removeAttr("disabled");
                   $("#btnAddMuestraEdit").removeAttr("disabled");
                   $("#txtMuestraEdit").removeAttr("disabled");
 
               }


           }

/*addon dbs ACTION PARA REEMPLAZAR A L GRILLA POR TEMA DE COMPATIBILIDAD  */
function loadDataMuestraHtml(gridId) {
    $.ajax({
        url: 'EnvioMuestra/ListarMuestraHtml',
        type: 'POST',
        beforeSend: function () { },
        success: function (response) {
            var dato = response;
            if (dato.result == 1) {
                $(gridId).html(dato.message);
            } else {
                if (dato.code == K_ERROR_CUSTOM) {
                    alert(dato.message);
                } else {
                    alert("Error al intentar cargar data: \n" + dato.message);
                }
            }
        }
    });
}
function delAddMuestraHtml(idMuestra, idGuiasalida,gridId) {
    $.ajax({
        url: 'EnvioMuestra/delAddMuestra?CodigoMuestra='+ idMuestra + '&CodigoGuiaSalida='+ idGuiasalida,
        type: 'GET',
        beforeSend: function () { },
        success: function (response) {
            var dato = response;
            if (dato.result == 1) {
                loadDataMuestraHtml(gridId);
            } else {
                if (dato.code == K_ERROR_CUSTOM) {
                    alert(dato.message);
                } else {
                    alert("Error al intentar eliminar muestra de lista: \n" + dato.message);
                }
            }
        }
    });
}
/*fin addon dbs ACTION PARA REEMPLAZAR A L GRILLA POR TEMA DE COMPATIBILIDAD  */

function home() {

    document.location.href = 'Inicio';
}
function reloadGrid() {

    $('#grid').data().kendoGrid.destroy();
    $('#grid').empty();
    loadData();

}

function initOpcionNuevoFin() {

    /*OPCION NUEVO Y FINALIZAR MUESTRA*/
                $('.k-grid-Nuevo').on("click", function () {
                     $("#txtEstado").val("NUEVO");
                     $("#txtFecha").kendoDatePicker({
                         value: new Date(),
                         min: new Date(1950, 0, 1),
                         max: new Date(2049, 11, 31),
                         culture: "en-AU",
                         format: "dd/MM/yyyy",
                         parseFormats: ["dd/MM/yyyy"]
                     });
                     limpiar();
                     loadDataMuestra();
                     $("#mvNuevoEnvioMuestra").kendoMobileModalView("open");
                 });
    /*FIN OPCION NUEVO Y FINALIZAR MUESTRA*/


}

var app = new kendo.mobile.Application(document.body);